////////////////////////////////////////////////////////////////////////////////
///                     File Name: process_options_bin.c                     ///
///                          Author: Huaxiao Liang                           ///
///                         Mail: hxliang666@qq.com                          ///
///                         04/16/2025-Wed-12:58:21                          ///
////////////////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <stdlib.h>

int main( int argc, char* argv[] ) {
   for( int i = 1; i < argc; i++ ) {
      if( argv[i][0] == '-' ) {   // 处理选项
         if( i + 1 >= argc ) {    // 检查参数是否存在
            fprintf( stderr,
                     "Error: Option '%s' requires an argument\n",
                     argv[i] );
            return EXIT_FAILURE;
         }

         if( argv[i][1] == '-' ) {   // 长选项（--long）
            printf( "This is an long option, its argument is %s.\n",
                    argv[i + 1] );
            i++;    // 跳过已处理的参数
         } else {   // 短选项（-short）
            printf( "This is an short option, its argument is %s.\n",
                    argv[i + 1] );
            i++;   // 跳过已处理的参数
         }
      } else {   // 处理非选项参数
         printf( "this is an non-option argument.\n" );
      }
   }
   return EXIT_SUCCESS;
}
